Most of the following steps are copied from “tmap: Get Started!”

data("World")

tmap_mode("view")
## tmap mode set to interactive viewing
tm_shape(World) +
  tm_polygons("HPI")
sp::plot(ne_countries(type = 'countries', scale = 'small'))

sp::plot(ne_countries(country = 'united kingdom', type='map_units', scale = 'medium'))

sp::plot(ne_coastline(scale = 'medium'))

data(World, metro, rivers, land)

tmap_mode("view")
## tmap mode set to interactive viewing
tm_shape(land) +
  tm_raster("elevation", palette = terrain.colors(10)) +
tm_shape(World) +
  tm_borders("white", lwd = .5) +
  tm_text("iso_a3", size = "AREA") +
tm_shape(metro) +
  tm_symbols(col = "red", size = "pop2020", scale = .5) +
tm_legend(show = FALSE)  
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## Text size will be constant in view mode. Set tm_view(text.size.variable = TRUE) to enable variable text sizes.
## Legend for symbol sizes not available in view mode.
tmap_mode("view")
## tmap mode set to interactive viewing
tm_shape(World) +
  tm_polygons(c("HPI", "economy")) +
  tm_facets(sync = TRUE, ncol = 2)
tmap_mode("plot")
## tmap mode set to plotting
data(NLD_muni)

NLD_muni$perc_men <- NLD_muni$pop_men / NLD_muni$population * 100

tm_shape(NLD_muni) +
  tm_polygons("perc_men", palette = "RdYlBu") +
  tm_facets(by = "province")
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## old-style crs object detected; please recreate object with a recent sf::st_crs()

tmap_mode("plot")
## tmap mode set to plotting
data(NLD_muni)

tm1 <- tm_shape(NLD_muni) + tm_polygons("population", convert2density = TRUE)
tm2 <- tm_shape(NLD_muni) + tm_bubbles(size = "population")

tmap_arrange(tm1, tm2)
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## Legend labels were too wide. Therefore, legend.text.size has been set to 0.32. Increase legend.width (argument of tm_layout) to make the legend wider and therefore the labels larger.

tmap_mode("view")
## tmap mode set to interactive viewing
tm_basemap("Stamen.Watercolor") +
tm_shape(metro) + tm_bubbles(size = "pop2020", col = "red") +
tm_tiles("stamen.TonerLabels")
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## old-style crs object detected; please recreate object with a recent sf::st_crs()
## Warning: basemap stamen.TonerLabelsdoes not exist in the providers list nor does
## it seem a valid url
## Legend for symbol sizes not available in view mode.

Here’s where I started trying things for myself and I think I’m starting to get somewhere with it.

I think this is how to plot rnaturalearth data with tmap. You need to give tmap data to use, so you set the rnaturalearth as an object, then put that within the data() function. After that, most of the tmap tools should work in the same way.

my_map_data <- ne_countries(country = 'United States of America')

data(my_map_data)
## Warning in data(my_map_data): data set 'my_map_data' not found
tmap_options(check.and.fix = TRUE)

tmap_mode("plot")
## tmap mode set to plotting
tm_shape(ne_states(geounit = 'england')) +
  tm_borders()

data(package = "rnaturalearthdata")